<!--
@http://www.cnblogs.com/zhuweisky/p/3930780.html
-->
<!DOCTYPE html>
</html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <h3>WebSocketTest</h3>
        <div id="login">
            <div>
                <input id="serverIP" type="text" placeholder="服务器IP" value="127.0.0.1" autofocus="autofocus" />
                <input id="serverPort" type="text" placeholder="服务器端口" value="9000" />
                <input id="btnConnect" type="button" value="连接" onclick="connect()" />
            </div>
            <div>
                <input id="sendText" type="text" placeholder="发送文本" value="I'm WebSocket Client!" />
                <input id="btnSend" type="button" value="发送" onclick="send()" />
            </div>
            <div>
                <div>
                    来自服务端的消息
                </div>
                <textarea id="txtContent" cols="50" rows="10" readonly="readonly"></textarea>
            </div>
        </div>
    </body>
    <script>
    	var a = { a:1, arr: 3 };
    	var b = a;
    	console.log(a)
    	console.log(b)

    	a.a = 2;
    	console.log(a)
    	console.log(b)

    </script>
    <script>
        var socket;

        function connect() {
            var host = "ws://" + $("serverIP").value + ":" + $("serverPort").value + "/"
            socket = new WebSocket(host);
			socket.onopen = function (msg) {
				$("btnConnect").disabled = true;
				alert("连接成功！");
			};

			socket.onmessage = function (msg) {
				if (typeof msg.data == "string") {
					displayContent(msg.data);
				}
				else {
					alert("非文本消息");
				}
			};
			socket.onclose = function (msg) { alert("socket closed!") };
        }

        function send() {
            var msg = $("sendText").value
            socket.send(msg);
        }

        window.onbeforeunload = function () {
            try {
                socket.close();
                socket = null;
            }
            catch (ex) {
            }
        };

        function $(id) { return document.getElementById(id); }

        Date.prototype.Format = function (fmt) { //author: meizz
            var o = {
                "M+": this.getMonth() + 1, //月份
                "d+": this.getDate(), //日
                "h+": this.getHours(), //小时
                "m+": this.getMinutes(), //分
                "s+": this.getSeconds(), //秒
                "q+": Math.floor((this.getMonth() + 3) / 3), //季度
                "S": this.getMilliseconds() //毫秒
            };
            if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
            for (var k in o)
                if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
            return fmt;
        }

        function displayContent(msg) {
            $("txtContent").value += "\r\n" +new Date().Format("yyyy/MM/dd hh:mm:ss")+ ":  " + msg;
        }
        function onkey(event) { if (event.keyCode == 13) { send(); } }
    </script>
</html>

<script type="text/javascript">

	http://v3.haiminggroup.com/v3shop/v3_app/Index?wid=36&fromId=fwh
	
	PATH用到的指令：

M----（X Y）：移动到

Z----(none)：关闭路径

L----（X Y）：画线到

H----(X)：水平线到

V----(Y)：垂直线到

C----(X1 Y1 X2 Y2 X Y)：三次贝塞尔曲线

S----(X1Y1 X Y)：光滑三次贝塞尔曲线到

Q----(X1 Y1 X Y)：二次贝塞尔曲线到

T----(X Y)：光滑二次贝塞尔曲线到

A----(rx ry x-axis-rotation large-arc-flag sweep-flag x y)+：椭圆弧

R----(X1 Y1(X Y))：Catmull-Rom曲线

注释：以上所有命令均允许小写字母。大写表示绝对定位，小写表示相对定位。
</script>
